package io.wanghaoran.project.module.system.model.dto;

import com.fasterxml.jackson.annotation.JsonProperty;

/**
 * Flux API请求DTO
 */
public class FluxRequestDTO {
    private String prompt;
    
    @JsonProperty("input_image")
    private String inputImage;
    
    @JsonProperty("input_image_2")
    private String inputImage2;
    
    private Integer seed = 42;
    
    @JsonProperty("aspect_ratio")
    private String aspectRatio = "16:9";
    
    @JsonProperty("output_format")
    private String outputFormat = "png";
    
    @JsonProperty("prompt_upsampling")
    private Boolean promptUpsampling = false;
    
    @JsonProperty("safety_tolerance")
    private Integer safetyTolerance = 2;

    // 构造函数
    public FluxRequestDTO() {}

    public FluxRequestDTO(String prompt, String inputImage) {
        this.prompt = prompt;
        this.inputImage = inputImage;
    }

    public FluxRequestDTO(String prompt, String inputImage, String inputImage2) {
        this.prompt = prompt;
        this.inputImage = inputImage;
        this.inputImage2 = inputImage2;
    }

    // getter和setter方法
    public String getPrompt() {
        return prompt;
    }

    public void setPrompt(String prompt) {
        this.prompt = prompt;
    }

    public String getInputImage() {
        return inputImage;
    }

    public void setInputImage(String inputImage) {
        this.inputImage = inputImage;
    }

    public String getInputImage2() {
        return inputImage2;
    }

    public void setInputImage2(String inputImage2) {
        this.inputImage2 = inputImage2;
    }

    public Integer getSeed() {
        return seed;
    }

    public void setSeed(Integer seed) {
        this.seed = seed;
    }

    public String getAspectRatio() {
        return aspectRatio;
    }

    public void setAspectRatio(String aspectRatio) {
        this.aspectRatio = aspectRatio;
    }

    public String getOutputFormat() {
        return outputFormat;
    }

    public void setOutputFormat(String outputFormat) {
        this.outputFormat = outputFormat;
    }

    public Boolean getPromptUpsampling() {
        return promptUpsampling;
    }

    public void setPromptUpsampling(Boolean promptUpsampling) {
        this.promptUpsampling = promptUpsampling;
    }

    public Integer getSafetyTolerance() {
        return safetyTolerance;
    }

    public void setSafetyTolerance(Integer safetyTolerance) {
        this.safetyTolerance = safetyTolerance;
    }
}